package br.com.classificadosonline.persistencia;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class PessoaEnderecoDAO {

	private static final PessoaEnderecoDAO instance = null;

	public static PessoaEnderecoDAO getInstance()
	{
		if (instance == null)
		{
			instance = new PessoaEnderecoDAO();
		}
		return instance;
	}

	public static PessoaEnderecoDAO obterInstancia() {
		return (PessoaEnderecoDAO) Conexao.select("SELECT * FROM PESSOAENDERECO");
	}
	
	public static void cadastrarPessoaEndereco(int codEndereco, String cpf) {
		Conexao.update("INSERT INTO PESSOAENDERECO VALUES (" + codEndereco + ", '" + cpf + "')");
	}
	
	public static void modificarEndereco(int codEndereco, String cpf) {
		Conexao.update("UPDATE PESSOAENDERCO SET CODENDERECO=" + codEndereco + " WHERE CODIGO='" + cpf +"'");
	}	
	
	public static Integer buscarEndereco(String cpf) {
		return buscar("SELECT CODENDERECO FROM PESSOAENDERECO WHERE CODIGO='" + cpf + "'").get(0);
	}
	
	public static Integer buscarTipoPorDescricao(String descricao) {
		return buscar("SELECT * FROM TIPO WHERE DESCRICAO='" + descricao + "'").get(0);
	}
	
	public static List<Integer> buscar(String query) {
		ResultSet rs = null;
		List<Integer> lista = new ArrayList<Integer>();
		Integer codEndereco;	
		Statement stmt;
		try {
			stmt = Conexao.conexao().createStatement();							
			rs = stmt.executeQuery(query);
			while (rs.next()) {
				codEndereco= rs.getInt("CODENDERECO");
				lista.add(codEndereco);
			}
			stmt.close();
			Conexao.conexao().close();	
		} catch (SQLException e) {
		}
		return lista;
	}
	
	public static List<Integer> listarPessoaEnderecos(String cpf) {
		return buscar("SELECT * FROM PESSOAENDERECO WHERE CPF='" + cpf + "'");
	}
	
	public static void excluirEnderecoPessoa(int codEndereco, String cpf) {
		Conexao.update("DELETE FROM PESSOAENDERECO WHERE CODENDERECO=" + codEndereco + " AND CPF='" + cpf + "'");
	}
}
